/**
 * 本地存储工具模块
 * 提供一个一致的接口用于使用localStorage，支持JSON序列化/反序列化
 */

/**
 * 从localStorage获取值
 * @param {string} key - 要检索的键
 * @returns {any} 解析后的值，如果未找到则返回null
 */
export function get(key) {
  try {
    const value = localStorage.getItem(key);
    return value ? JSON.parse(value) : null;
  } catch (error) {
    console.error(`Error getting ${key} from localStorage:`, error);
    return null;
  }
}

/**
 * 在localStorage中设置值
 * @param {string} key - 要设置的键
 * @param {any} value - 要存储的值（将被JSON字符串化）
 */
export function set(key, value) {
  try {
    localStorage.setItem(key, JSON.stringify(value));
  } catch (error) {
    console.error(`Error setting ${key} in localStorage:`, error);
  }
}

/**
 * 从localStorage中移除值
 * @param {string} key - 要移除的键
 */
export function remove(key) {
  try {
    localStorage.setItem(key, null);
    localStorage.removeItem(key);
  } catch (error) {
    console.error(`Error removing ${key} from localStorage:`, error);
  }
}

/**
 * 清除localStorage中的所有项
 */
export function clear() {
  try {
    localStorage.clear();
  } catch (error) {
    console.error('Error clearing localStorage:', error);
  }
}

// 导出一个默认对象用于直接导入
const Local = {
  get,
  set,
  remove,
  clear
};

export default Local; 